```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Java集合框架完全指南 | 技术小馆</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            color: #333;
            line-height: 1.6;
        }
        h1, h2, h3, h4, h5, h6 {
            font-family: 'Noto Serif SC', Georgia, serif;
            font-weight: 600;
        }
        .hero-gradient {
            background: linear-gradient(135deg, #6e8efb 0%, #a777e3 100%);
        }
        .code-block {
            background-color: #282c34;
            border-radius: 8px;
            color: #abb2bf;
        }
        .highlight {
            color: #e06c75;
            font-weight: 500;
        }
        .card-hover {
            transition: all 0.3s ease;
        }
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        }
        .diagram-container {
            background-color: #f8f9fa;
            border-radius: 12px;
            padding: 20px;
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero-gradient text-white py-20 px-4 md:px-0">
        <div class="container mx-auto max-w-4xl text-center">
            <div class="flex justify-center mb-6">
                <div class="bg-white bg-opacity-20 rounded-full p-4 inline-flex">
                    <i class="fab fa-java text-4xl"></i>
                </div>
            </div>
            <h1 class="text-4xl md:text-5xl font-bold mb-4">Java集合框架完全指南</h1>
            <p class="text-xl opacity-90 mb-8">掌握Java核心数据结构与算法的必备知识</p>
            <div class="flex justify-center space-x-4">
                <a href="#collection" class="bg-white text-indigo-600 px-6 py-2 rounded-full font-medium hover:bg-opacity-90 transition">开始学习</a>
                <a href="#diagram" class="border border-white text-white px-6 py-2 rounded-full font-medium hover:bg-white hover:bg-opacity-10 transition">查看框架图</a>
            </div>
        </div>
    </section>

    <!-- Main Content -->
    <main class="container mx-auto max-w-5xl px-4 py-12">
        <!-- 1. 集合的概念 -->
        <section id="collection" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-blue-100 text-blue-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">1</span>
                </div>
                <h2 class="text-3xl font-bold">集合的概念</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 mb-8 card-hover">
                <div class="space-y-4">
                    <div class="flex items-start">
                        <div class="text-blue-500 mr-3 mt-1"><i class="fas fa-check-circle"></i></div>
                        <p>集合是Java API所提供的一系列类，可以<span class="highlight">用于动态存放多个对象</span>。<span class="text-gray-500">——集合只能存对象</span></p>
                    </div>
                    <div class="flex items-start">
                        <div class="text-blue-500 mr-3 mt-1"><i class="fas fa-check-circle"></i></div>
                        <p>集合与数组的不同在于，集合是<span class="highlight">大小可变的序列</span>，而且<span class="highlight">元素类型可以不受限定</span>，只要是引用类型</p>
                    </div>
                    <div class="flex items-start">
                        <div class="text-blue-500 mr-3 mt-1"><i class="fas fa-check-circle"></i></div>
                        <p>集合类全部支持<span class="highlight">泛型</span>，是一种数据安全的用法。</p>
                    </div>
                </div>
            </div>
        </section>

        <!-- 2. 集合框架图 -->
        <section id="diagram" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-purple-100 text-purple-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">2</span>
                </div>
                <h2 class="text-3xl font-bold">集合框架图</h2>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div class="bg-white rounded-xl shadow-md p-6 card-hover">
                    <h3 class="text-xl font-bold mb-4 text-purple-600">Collection家族</h3>
                    <p>该接口下的所有子孙均存储的是<span class="highlight">单一对象</span>。</p>
                </div>
                <div class="bg-white rounded-xl shadow-md p-6 card-hover">
                    <h3 class="text-xl font-bold mb-4 text-purple-600">Map家族</h3>
                    <p>该接口下的所有子孙均存储的是<span class="highlight">key-value(键值对)</span>形式的数据。</p>
                </div>
            </div>

            <h3 class="text-xl font-bold mb-4 mt-8">辅助分支</h3>
            <div class="grid md:grid-cols-3 gap-6 mb-8">
                <div class="bg-gray-50 rounded-lg p-6 border border-gray-200">
                    <div class="text-orange-500 text-2xl mb-3"><i class="fas fa-sync-alt"></i></div>
                    <h4 class="font-bold mb-2">Iterator家族</h4>
                    <p class="text-gray-600">主要用于遍历Colleciton接口的及其子类而设计</p>
                </div>
                <div class="bg-gray-50 rounded-lg p-6 border border-gray-200">
                    <div class="text-orange-500 text-2xl mb-3"><i class="fas fa-balance-scale"></i></div>
                    <h4 class="font-bold mb-2">Comparator</h4>
                    <p class="text-gray-600">在集合中存储对象时候，用于对象之间的比较</p>
                </div>
                <div class="bg-gray-50 rounded-lg p-6 border border-gray-200">
                    <div class="text-orange-500 text-2xl mb-3"><i class="fas fa-tools"></i></div>
                    <h4 class="font-bold mb-2">Collections工具类</h4>
                    <p class="text-gray-600">注意该类名带个<span class="highlight">s</span>，一般就表示工具类</p>
                </div>
            </div>

            <div class="diagram-container mb-8">
                <div class="mermaid">
                    graph TD
                    A[Java集合框架] --> B[Collection]
                    A --> C[Map]
                    
                    B --> D[List]
                    B --> E[Set]
                    B --> F[Queue]
                    
                    D --> G[ArrayList]
                    D --> H[LinkedList]
                    D --> I[Vector]
                    I --> J[Stack]
                    
                    E --> K[HashSet]
                    E --> L[TreeSet]
                    
                    C --> M[HashMap]
                    C --> N[TreeMap]
                    C --> O[Hashtable]
                    
                    P[Iterator] --> Q[Collection]
                    R[Comparator] --> S[Set]
                    R --> T[TreeMap]
                    U[Collections] --> V[所有集合类]
                </div>
            </div>
        </section>

        <!-- 3. Collection接口 -->
        <section id="collection-interface" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-green-100 text-green-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">3</span>
                </div>
                <h2 class="text-3xl font-bold">Collection接口</h2>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div class="bg-white rounded-xl shadow-md p-6 card-hover">
                    <h3 class="text-xl font-bold mb-4 text-green-600">List接口</h3>
                    <p>存放的元素<span class="highlight">有序且允许有重复</span>的集合接口。</p>
                    <div class="mt-4">
                        <span class="inline-block bg-green-100 text-green-800 text-xs px-2 py-1 rounded mr-2">ArrayList</span>
                        <span class="inline-block bg-green-100 text-green-800 text-xs px-2 py-1 rounded mr-2">LinkedList</span>
                        <span class="inline-block bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Vector</span>
                    </div>
                </div>
                <div class="bg-white rounded-xl shadow-md p-6 card-hover">
                    <h3 class="text-xl font-bold mb-4 text-green-600">Set接口</h3>
                    <p>存放的元素<span class="highlight">无序不包含重复</span>的集合接口。</p>
                    <div class="mt-4">
                        <span class="inline-block bg-green-100 text-green-800 text-xs px-2 py-1 rounded mr-2">HashSet</span>
                        <span class="inline-block bg-green-100 text-green-800 text-xs px-2 py-1 rounded">TreeSet</span>
                    </div>
                </div>
            </div>

            <h3 class="text-xl font-bold mb-4">Collection接口常用方法</h3>
            <div class="code-block p-6 rounded-lg mb-8">
                <pre class="text-sm overflow-x-auto"><code class="language-java">1. int size();　// 返回此collection中的元素数。
2. boolean isEmpty();　// 判断此collection中是否包含元素。
3. boolean contains(Object obj);　// 判断此collection是否包含指定的元素。
4. boolean contains(Collection c);　// 判断此collection是否包含指定collection中的所有元素。
5. boolean add(Object element);　// 向此collection中添加元素。
6. boolean addAll(Collection c);// 将指定collection中的所有元素添加到此collection中
7. boolean remove(Object element); // 从此collection中移除指定的元素。
8. boolean removeAll(Collection c);　// 移除此collection中那些也包含在指定collection中的所有元素。
9. void clear();　// 移除些collection中所有的元素。
10. boolean retainAll(Collection c);　// 仅保留此collection中那些也包含在指定collection的元素。
11. Iterator iterator();　// 返回在此collection的元素上进行迭代的迭代器。
12. Object[] toArray();　// 把此collection转成数组。</code></pre>
            </div>
        </section>

        <!-- 4. List接口 -->
        <section id="list-interface" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-red-100 text-red-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">4</span>
                </div>
                <h2 class="text-3xl font-bold">List接口</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 mb-8 card-hover">
                <p class="mb-4">List中的元素是<span class="highlight">有序的</span>，且<span class="highlight">允许重复</span>。</p>
                <div class="mermaid">
                    graph TD
                    List --> ArrayList
                    List --> LinkedList
                    List --> Vector
                    Vector --> Stack
                </div>
            </div>

            <h3 class="text-xl font-bold mb-4">List接口新增方法</h3>
            <div class="code-block p-6 rounded-lg mb-8">
                <pre class="text-sm overflow-x-auto"><code class="language-java">1. public Object get(int index)　// 根据下标，返回列表中的元素
2. public Object add(int index, Object element);　// 在列表的指定位置插入指定元素
3. public Object set(int index, Object element);　// 用指定元素替换列表中指定位置的元素
4. public Object remove(int index)　// 移除列表中指定位置的元素</code></pre>
            </div>
            <div class="bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-8">
                <div class="flex">
                    <div class="flex-shrink-0 text-yellow-500">
                        <i class="fas fa-exclamation-circle"></i>
                    </div>
                    <div class="ml-3">
                        <p class="text-sm text-yellow-700">
                            <span class="font-bold">注意：</span>list集合中的元素的索引与数组中元素的索引一样，均是从0开始。
                        </p>
                    </div>
                </div>
            </div>
        </section>

        <!-- 5. ArrayList集合 -->
        <section id="arraylist" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-indigo-100 text-indigo-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">5</span>
                </div>
                <h2 class="text-3xl font-bold">ArrayList集合</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 mb-8 card-hover">
                <p class="mb-4">ArrayList相比数组的区别？<span class="highlight">容量的可扩展性</span>，数据类型只要是Object类型就行，<span class="highlight">存储的必须是对象</span>，不能存储基础数据类型。</p>
                <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781207590-806a6fb8-ece1-4654-9df8-038bdd1574a1.png" alt="ArrayList示例" class="rounded-lg shadow-sm w-full max-w-lg mx-auto">
                <div class="mt-6 bg-blue-50 p-4 rounded-lg">
                    <h4 class="font-bold text-blue-800 mb-2"><i class="fas fa-question-circle mr-2"></i>思考题</h4>
                    <p class="text-blue-700">为什么上述的程序却可以存储基本的数据类型？</p>
                </div>
            </div>
        </section>

        <!-- 6. LinkedList集合 -->
        <section id="linkedlist" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-pink-100 text-pink-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">6</span>
                </div>
                <h2 class="text-3xl font-bold">LinkedList集合</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 card-hover">
                <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781207934-0b28e141-0711-4337-9657-ad3605568702.png" alt="LinkedList示例" class="rounded-lg shadow-sm w-full max-w-lg mx-auto mb-6">
                <p class="mb-6">这就是面向接口编程的好处。</p>
                
                <div class="mb-6">
                    <h4 class="text-xl font-bold mb-3 text-pink-600">ArrayList vs LinkedList</h4>
                    <p class="mb-4"><span class="highlight">从底层数据结构来说起，这个很关键！！！</span></p>
                    <div class="grid md:grid-cols-2 gap-6">
                        <div>
                            <h5 class="font-bold mb-2">ArrayList</h5>
                            <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781208256-ac014212-c8c4-4965-8131-9f1b073d45a7.png" alt="ArrayList结构" class="rounded shadow-sm w-full">
                        </div>
                        <div>
                            <h5 class="font-bold mb-2">LinkedList</h5>
                            <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781208588-55433eeb-3ccd-47f4-acc4-dacfde2ec79e.png" alt="LinkedList结构" class="rounded shadow-sm w-full">
                        </div>
                    </div>
                </div>
                
                <div class="bg-gray-50 p-4 rounded-lg">
                    <div class="flex">
                        <div class="flex-shrink-0 text-gray-500">
                            <i class="fas fa-lightbulb"></i>
                        </div>
                        <div class="ml-3">
                            <p class="text-sm text-gray-700">
                                <span class="font-bold">学习建议：</span>通过画图和阅读源代码来深入理解两者的区别。
                            </p>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- 7. Iterator接口 -->
        <section id="iterator" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-teal-100 text-teal-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">7</span>
                </div>
                <h2 class="text-3xl font-bold">Iterator(迭代器)接口</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 mb-8 card-hover">
                <h3 class="text-xl font-bold mb-4 text-teal-600">Iterator概述</h3>
                <p class="mb-4">通过上面的学习，我们知道可以采用两个方式来遍历我们的List集合，其实API已经为我们准备了更专业的遍历工具，专门来遍历我们集合中的元素，包括我们后面要学习到的Set集合。这个工具就叫——迭代器 Iterator对象称作迭代器，以类似指针的方式来遍历我们的集合元素。</p>
                
                <h3 class="text-xl font-bold mb-4 mt-6 text-teal-600">获得Iterator对象</h3>
                <p class="mb-4">调用集合对象的iterator()方法，可以获得一个与该集合对象关联的迭代器对象。</p>
                <div class="code-block p-6 rounded-lg mb-6">
                    <pre class="text-sm overflow-x-auto"><code class="language-java">List list = new ArrayList<>();  
Iterator iterator = list.iterator();  //获得Iterator对象</code></pre>
                </div>
                
                <h3 class="text-xl font-bold mb-4 text-teal-600">Iterator的常用方法</h3>
                <div class="code-block p-6 rounded-lg mb-6">
                    <pre class="text-sm overflow-x-auto"><code class="language-java">Iterator定义如下两个方法：
boolean hasNext();　//判断游标右边是否有元素。如果有返回true，否则false
Object next();　//返回游标右边的元素并将游标移动到下一个位置

List list = new ArrayList();
list.add("abc");
list.add("def");
Iterator iterator = list.iterator();

while (iterator.hasNext()) { //判断后面是否还有元素
    String string = (String)iterator.next();  //获得下一个元素
    System.out.println(string);
}</code></pre>
                </div>
                
                <h3 class="text-xl font-bold mb-4 text-teal-600">使用Iterator遍历list集合</h3>
                <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781208865-ebbfc347-2f2f-4dc2-bece-6efc82c262b4.png" alt="Iterator遍历示例" class="rounded-lg shadow-sm w-full max-w-lg mx-auto">
            </div>
        </section>

        <!-- 8. 泛型的使用 -->
        <section id="generic" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-orange-100 text-orange-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">8</span>
                </div>
                <h2 class="text-3xl font-bold">泛型(Generic)的使用</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 card-hover">
                <h3 class="text-xl font-bold mb-4 text-orange-600">集合中使用泛型</h3>
                <div class="bg-red-50 border-l-4 border-red-400 p-4 mb-6">
                    <div class="flex">
                        <div class="flex-shrink-0 text-red-500">
                            <i class="fas fa-exclamation-triangle"></i>
                        </div>
                        <div class="ml-3">
                            <p class="text-sm text-red-700">
                                <span class="font-bold">警告：</span>其实上面我们的程序存在严重的安全隐患！
                            </p>
                        </div>
                    </div>
                </div>
                
                <h4 class="font-bold mb-3">JDK1.4以前不能使用泛型的弊端：</h4>
                <ul class="list-disc pl-5 mb-6 space-y-2">
                    <li>装入集合的数据都会被当作Object对象来存放，从而失去了自己的实际类型。</li>
                    <li>从集合中取出元素时，需要进行强制类型转换。效率低，容易产生错误。</li>
                </ul>
                
                <h4 class="font-bold mb-3">从JDK1.5开始，sun公司推出了泛型来解决上述问题：</h4>
                <div class="grid md:grid-cols-3 gap-4 mb-6">
                    <div class="bg-gray-50 p-4 rounded-lg">
                        <div class="text-orange-500 text-xl mb-2"><i class="fas fa-edit"></i></div>
                        <p class="font-medium">定义时指定类型</p>
                        <p class="text-sm text-gray-600 mt-1">如：Collection&lt;String&gt; coll = new ArrayList&lt;&gt;();</p>
                    </div>
                    <div class="bg-gray-50 p-4 rounded-lg">
                        <div class="text-orange-500 text-xl mb-2"><i class="fas fa-ban"></i></div>
                        <p class="font-medium">类型安全</p>
                        <p class="text-sm text-gray-600 mt-1">coll.add(new Integer(1)); <span class="text-red-500">//编译错误！</span></p>
                    </div>
                    <div class="bg-gray-50 p-4 rounded-lg">
                        <div class="text-orange-500 text-xl mb-2"><i class="fas fa-bolt"></i></div>
                        <p class="font-medium">无需转型</p>
                        <p class="text-sm text-gray-600 mt-1">String str1 = it.next();</p>
                    </div>
                </div>
                
                <h4 class="font-bold mb-3">优点</h4>
                <div class="flex space-x-4">
                    <span class="inline-block bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm">简化集合的使用</span>
                    <span class="inline-block bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm">增强代码可读性</span>
                    <span class="inline-block bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm">提高稳定性</span>
                </div>
            </div>
        </section>

        <!-- 9. 扩展知识 -->
        <section id="extensions" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-gray-100 text-gray-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">9</span>
                </div>
                <h2 class="text-3xl font-bold">扩展知识</h2>
            </div>
            
            <!-- 9.1 Vector -->
            <div class="mb-12">
                <h3 class="text-2xl font-bold mb-4">List集合之Vector集合<span class="text-sm font-normal text-gray-500 ml-2">(了解即可)</span></h3>
                <div class="bg-white rounded-xl shadow-md p-8 mb-6 card-hover">
                    <p class="mb-4">在List 接口中还有一个子类：Vector。Vector类从整个 Java 的集合发展历史来看，Vector算是一个元老级的类，在 JDK1.0 的时候就已经存在此类。但是到了Java2(JDK1.2)之后重点强调了集合框架的概念，所以先后定义了很多的新接口(如：List 等)。但是考虑到一大部分的人已经习惯了使用 Vector类，因此设计者就让 Vector 类多实现了一个 List接口，这样才将其保留下来。但是因为其是 List 接口的子类，所以 Vector 类的使用与之前的并没有太大的区别。但是Vector内部有一些比较老的方法名比较长的方法。</p>
                    <div class="grid md:grid-cols-2 gap-6 mt-6">
                        <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781209118-7d9b3ca6-1475-4a82-82a7-46ca2b8b8554.png" alt="Vector示例1" class="rounded shadow-sm">
                        <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781209398-3385e143-2bd8-4641-8b01-89f5c70e36be.png" alt="Vector示例2" class="rounded shadow-sm">
                    </div>
                    <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781209711-56add26c-9e7d-41e8-a116-decfeabfec3a.png" alt="Vector示例3" class="rounded shadow-sm mt-6 w-full max-w-lg mx-auto">
                </div>
            </div>
            
            <!-- 9.2 Stack -->
            <div class="mb-12">
                <h3 class="text-2xl font-bold mb-4">List集合之Stack集合</h3>
                <div class="bg-white rounded-xl shadow-md p-8 card-hover">
                    <p class="mb-4">Vector提供一个Stack子类，它用于模拟了"栈"这种数据结构，"栈"通常是指"后进先出"(LIFO)</p>
                    <img src="https://cdn.nlark.com/yuque/0/2023/png/21449790/1692781210008-a7c6bb03-6e73-4e6e-b605-70a4a0203b95.png" alt="Stack示例" class="rounded-lg shadow-sm w-full max-w-lg mx-auto mt-6">
                </div>
            </div>
            
            <div class="bg-blue-50 border-l-4 border-blue-400 p-4 mb-8">
                <div class="flex">
                    <div class="flex-shrink-0 text-blue-500">
                        <i class="fas fa-info-circle"></i>
                    </div>
                    <div class="ml-3">
                        <p class="text-sm text-blue-700">
                            <span class="font-bold">承上启下：</span>List是有序且可重复的，Set是无序且不可重复的
                        </p>
                    </div>
                </div>
            </div>
        </section>

        <!-- 10. 作业 -->
        <section id="homework" class="mb-16">
            <div class="flex items-center mb-8">
                <div class="bg-indigo-100 text-indigo-600 rounded-full w-10 h-10 flex items-center justify-center mr-4">
                    <span class="font-bold">10</span>
                </div>
                <h2 class="text-3xl font-bold">作业</h2>
            </div>
            
            <div class="bg-white rounded-xl shadow-md p-8 card-hover">
                <ol class="list-decimal pl-5 space-y-4">
                    <li>动手做实验，验证ArrayList和LinkedList在做增删改查的区别？（添加到中间）测时间</li>
                    <li>动手做实验，看普通的for循环，增强的for循环，迭代器遍历集合的时候，性能的差异。（ArrayList，LinkedList 观察这三种方式分别消耗的时间）</li>
                    <li>做一个学员管理系统（增加，修改，删除，查询）List</li>
                </ol>
                
                <div class="mt-8 bg-purple-50 p-6 rounded-lg">
                    <h3 class="text-xl font-bold mb-4 text-purple-600"><i class="fas fa-lightbulb mr-2"></i>学习建议</h3>
                    <p class="mb-2">完成以上作业时，建议：</p>
                    <ul class="list-disc pl-5 space-y-2">
                        <li>使用System.currentTimeMillis()记录时间差来比较性能</li>
                        <li>对于学员管理系统，可以先设计实体类和简单的UI菜单</li>
                        <li>尝试使用泛型来提高代码的安全性</li>
                    </ul>
                </div>
            </div>
        </section>
    </main>

    <!-- Footer -->
    <footer class="bg-gray-900 text-gray-300 py-12">
        <div class="container mx-auto px-4 text-center">
            <div class="mb-4">
                <h3 class="text-xl font-bold text-white">技术小馆</h3>
            </div>
            <div class="text-sm">
                <a href="http://www.yuque.com/jtostring" class="hover:text-white transition">http://www.yuque.com/jtostring</a>
            </div>
            <div class="mt-6 flex justify-center space-x-4">
                <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-github"></i></a>
                <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-twitter"></i></a>
                <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-weixin"></i></a>
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
    </script>
</body>
</html>
```